/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package com.eps.entity;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
import javax.persistence.Basic;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

/**
 *
 * @author Renato
 */
@Entity
@Table(name = "Suministros")
@org.hibernate.annotations.Proxy(lazy=false)
@NamedQueries({
    @NamedQuery(name = "Suministros.findAll", query = "SELECT s FROM Suministros s"),
    @NamedQuery(name = "Suministros.findByIDSuministro", query = "SELECT s FROM Suministros s WHERE s.iDSuministro = :iDSuministro"),
    @NamedQuery(name = "Suministros.findByDescripcion", query = "SELECT s FROM Suministros s WHERE s.descripcion = :descripcion"),
    @NamedQuery(name = "Suministros.findByAlta", query = "SELECT s FROM Suministros s WHERE s.alta = :alta"),
    @NamedQuery(name = "Suministros.findByCodigoAnterior", query = "SELECT s FROM Suministros s WHERE s.codigoAnterior = :codigoAnterior"),
    @NamedQuery(name = "Suministros.findByPrecioMercado", query = "SELECT s FROM Suministros s WHERE s.precioMercado = :precioMercado"),
    @NamedQuery(name = "Suministros.findByFechaUltimoCotizacion", query = "SELECT s FROM Suministros s WHERE s.fechaUltimoCotizacion = :fechaUltimoCotizacion"),
    @NamedQuery(name = "Suministros.findByEspecificaciones", query = "SELECT s FROM Suministros s WHERE s.especificaciones = :especificaciones")})
public class Suministros implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @Basic(optional = false)
    @Column(name = "ID_Suministro")
    private String iDSuministro;
    @Basic(optional = false)
    @Column(name = "descripcion")
    private String descripcion;
    @Basic(optional = false)
    @Column(name = "alta")
    private boolean alta;
    @Column(name = "codigo_anterior")
    private String codigoAnterior;
    @Column(name = "precio_mercado")
    private BigDecimal precioMercado;
    @Column(name = "fecha_ultimo_cotizacion")
    @Temporal(TemporalType.TIMESTAMP)
    private Date fechaUltimoCotizacion;
    @Column(name = "especificaciones")
    private String especificaciones;
    @JoinColumn(name = "cod_Grupo_Sumi", referencedColumnName = "cod_Grupo_Sumi")
    @ManyToOne(optional = false)
    private GrupoSuministros codGrupoSumi;
    @JoinColumn(name = "Tipo_ABC", referencedColumnName = "id_tabla_tipo")
    @ManyToOne(optional = false)
    private Tipo tipoABC;
    @JoinColumn(name = "tipo_stock", referencedColumnName = "id_tabla_tipo")
    @ManyToOne
    private Tipo tipoStock;
    @JoinColumn(name = "tipo_unidad_medida", referencedColumnName = "id_tabla_tipo")
    @ManyToOne
    private Tipo tipoUnidadMedida;
    @OneToMany( mappedBy = "suministros")
    private List<DetallePedidoSuministro> detallePedidoSuministroList;
    
    public Suministros() {
    }

    public Suministros(String iDSuministro) {
        this.iDSuministro = iDSuministro;
    }

    public Suministros(String iDSuministro, String descripcion, boolean alta) {
        this.iDSuministro = iDSuministro;
        this.descripcion = descripcion;
        this.alta = alta;
    }

    public String getIDSuministro() {
        return iDSuministro;
    }

    public void setIDSuministro(String iDSuministro) {
        this.iDSuministro = iDSuministro;
    }

    public String getDescripcion() {
        return descripcion;
    }

    public void setDescripcion(String descripcion) {
        this.descripcion = descripcion;
    }

    public boolean getAlta() {
        return alta;
    }

    public void setAlta(boolean alta) {
        this.alta = alta;
    }

    public String getCodigoAnterior() {
        return codigoAnterior;
    }

    public void setCodigoAnterior(String codigoAnterior) {
        this.codigoAnterior = codigoAnterior;
    }

    public BigDecimal getPrecioMercado() {
        return precioMercado;
    }

    public void setPrecioMercado(BigDecimal precioMercado) {
        this.precioMercado = precioMercado;
    }

    public Date getFechaUltimoCotizacion() {
        return fechaUltimoCotizacion;
    }

    public void setFechaUltimoCotizacion(Date fechaUltimoCotizacion) {
        this.fechaUltimoCotizacion = fechaUltimoCotizacion;
    }

    public String getEspecificaciones() {
        return especificaciones;
    }

    public void setEspecificaciones(String especificaciones) {
        this.especificaciones = especificaciones;
    }

    public GrupoSuministros getCodGrupoSumi() {
        return codGrupoSumi;
    }

    public void setCodGrupoSumi(GrupoSuministros codGrupoSumi) {
        this.codGrupoSumi = codGrupoSumi;
    }

    public Tipo getTipoABC() {
        return tipoABC;
    }

    public void setTipoABC(Tipo tipoABC) {
        this.tipoABC = tipoABC;
    }

    public Tipo getTipoStock() {
        return tipoStock;
    }

    public void setTipoStock(Tipo tipoStock) {
        this.tipoStock = tipoStock;
    }

    public Tipo getTipoUnidadMedida() {
        return tipoUnidadMedida;
    }

    public void setTipoUnidadMedida(Tipo tipoUnidadMedida) {
        this.tipoUnidadMedida = tipoUnidadMedida;
    }

    public List<DetallePedidoSuministro> getDetallePedidoSuministroList() {
        return detallePedidoSuministroList;
    }

    public void setDetallePedidoSuministroList(List<DetallePedidoSuministro> detallePedidoSuministroList) {
        this.detallePedidoSuministroList = detallePedidoSuministroList;
    }


    @Override
    public int hashCode() {
        int hash = 0;
        hash += (iDSuministro != null ? iDSuministro.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {

        if (!(object instanceof Suministros)) {
            return false;
        }
        Suministros other = (Suministros) object;
        if ((this.iDSuministro == null && other.iDSuministro != null) || (this.iDSuministro != null && !this.iDSuministro.equals(other.iDSuministro))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "suministros.ejb30.entity.Suministros[iDSuministro=" + iDSuministro + "]";
    }

}
